﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Autoverwaltung.Model
{
    public class Modell : IAutoverwaltungModel, IEquatable<Modell>
    {
        /// <summary>
        /// Der Hersteller, welcher dieses
        /// Modell produziert.
        /// </summary>
        public Hersteller Hersteller { get; set; }

        /// <summary>
        /// Die Bezeichnung des Modells.
        /// </summary>
        public string Bezeichnung { get; set; }

        /// <summary>
        /// <see cref="Autoverwaltung.Model.IAutoverwaltungsModel"/>
        /// </summary>
        public int Id { get; set; }

        public bool Equals(Modell other)
        {
            if (other == null)
            {
                return false;
            }

            bool herstellerCheck = (this.Hersteller != null && this.Hersteller.Equals(other.Hersteller) || this.Hersteller == null && other.Hersteller == null);
            bool bezeichnungCheck = (this.Bezeichnung != null && this.Bezeichnung.Equals(other.Bezeichnung) || this.Bezeichnung == null && other.Bezeichnung == null);

            return this.Id.Equals(other.Id) && herstellerCheck && bezeichnungCheck;
        }
    }
}
